curl --request POST \
--url https://api.evermind.ai/api/v2/memory/get \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"memory_type": "episode",
"page": 1,
"page_size": 20,
"sort_order": "desc"
}
'import requests
url = "https://api.evermind.ai/api/v2/memory/get"
payload = {
"memory_type": "episode",
"page": 1,
"page_size": 20,
"sort_order": "desc"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({memory_type: 'episode', page: 1, page_size: 20, sort_order: 'desc'})
};
fetch('https://api.evermind.ai/api/v2/memory/get', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.evermind.ai/api/v2/memory/get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'memory_type' => 'episode',
'page' => 1,
'page_size' => 20,
'sort_order' => 'desc'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.evermind.ai/api/v2/memory/get"
payload := strings.NewReader("{\n \"memory_type\": \"episode\",\n \"page\": 1,\n \"page_size\": 20,\n \"sort_order\": \"desc\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.evermind.ai/api/v2/memory/get")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"memory_type\": \"episode\",\n \"page\": 1,\n \"page_size\": 20,\n \"sort_order\": \"desc\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.evermind.ai/api/v2/memory/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"memory_type\": \"episode\",\n \"page\": 1,\n \"page_size\": 20,\n \"sort_order\": \"desc\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"data": {
"episodes": [
{
"id": "<string>",
"app_id": "<string>",
"project_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"summary": "<string>",
"subject": "<string>",
"episode": "<string>",
"type": "<string>",
"user_id": "<string>",
"session_id": "<string>",
"sender_ids": [
"<string>"
],
"readable_episode": "<string>",
"atomic_facts": [
{
"id": "<string>",
"content": "<string>"
}
],
"tags": [
"<string>"
]
}
],
"profiles": [
{
"id": "<string>",
"app_id": "<string>",
"project_id": "<string>",
"user_id": "<string>",
"profile_data": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"agent_cases": [
{
"id": "<string>",
"app_id": "<string>",
"project_id": "<string>",
"agent_id": "<string>",
"session_id": "<string>",
"task_intent": "<string>",
"approach": "<string>",
"quality_score": 123,
"timestamp": "2023-11-07T05:31:56Z",
"key_insight": "<string>"
}
],
"agent_skills": [
{
"id": "<string>",
"app_id": "<string>",
"project_id": "<string>",
"agent_id": "<string>",
"name": "<string>",
"description": "<string>",
"content": "<string>",
"confidence": 123,
"maturity_score": 123,
"source_case_ids": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"total_count": 0,
"count": 0
}
}{}{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{}{}Get memories [OSS + Cloud]
List stored memories of one type, paginated.
- Exactly one of
user_id/agent_idis required. memory_typemust match that owner: a user owns “episode” and “profile”, an agent owns “agent_case” and “agent_skill”. The other pairings are rejected with 422.
This is a structured read, not a query: it does not embed the request, so a memory is readable as soon as it is extracted — whereas the vector index /api/v2/memory/search relies on lags behind extraction by seconds.
curl --request POST \
--url https://api.evermind.ai/api/v2/memory/get \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"memory_type": "episode",
"page": 1,
"page_size": 20,
"sort_order": "desc"
}
'import requests
url = "https://api.evermind.ai/api/v2/memory/get"
payload = {
"memory_type": "episode",
"page": 1,
"page_size": 20,
"sort_order": "desc"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({memory_type: 'episode', page: 1, page_size: 20, sort_order: 'desc'})
};
fetch('https://api.evermind.ai/api/v2/memory/get', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.evermind.ai/api/v2/memory/get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'memory_type' => 'episode',
'page' => 1,
'page_size' => 20,
'sort_order' => 'desc'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.evermind.ai/api/v2/memory/get"
payload := strings.NewReader("{\n \"memory_type\": \"episode\",\n \"page\": 1,\n \"page_size\": 20,\n \"sort_order\": \"desc\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.evermind.ai/api/v2/memory/get")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"memory_type\": \"episode\",\n \"page\": 1,\n \"page_size\": 20,\n \"sort_order\": \"desc\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.evermind.ai/api/v2/memory/get")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"memory_type\": \"episode\",\n \"page\": 1,\n \"page_size\": 20,\n \"sort_order\": \"desc\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"data": {
"episodes": [
{
"id": "<string>",
"app_id": "<string>",
"project_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"summary": "<string>",
"subject": "<string>",
"episode": "<string>",
"type": "<string>",
"user_id": "<string>",
"session_id": "<string>",
"sender_ids": [
"<string>"
],
"readable_episode": "<string>",
"atomic_facts": [
{
"id": "<string>",
"content": "<string>"
}
],
"tags": [
"<string>"
]
}
],
"profiles": [
{
"id": "<string>",
"app_id": "<string>",
"project_id": "<string>",
"user_id": "<string>",
"profile_data": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"agent_cases": [
{
"id": "<string>",
"app_id": "<string>",
"project_id": "<string>",
"agent_id": "<string>",
"session_id": "<string>",
"task_intent": "<string>",
"approach": "<string>",
"quality_score": 123,
"timestamp": "2023-11-07T05:31:56Z",
"key_insight": "<string>"
}
],
"agent_skills": [
{
"id": "<string>",
"app_id": "<string>",
"project_id": "<string>",
"agent_id": "<string>",
"name": "<string>",
"description": "<string>",
"content": "<string>",
"confidence": 123,
"maturity_score": 123,
"source_case_ids": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"total_count": 0,
"count": 0
}
}{}{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{}{}Authorizations
API key issued by EverOS, sent as Authorization: Bearer <api_key>.
Body
Which kind of memory to list: "episode" (narrative summaries of past sessions), "profile" (stable identity and preferences), "agent_case" (a distilled past trajectory) or "agent_skill" (a reusable skill). It must match the owner — the mismatched pairings are rejected with 422.
episode, profile, agent_case, agent_skill Scope to read from, defaulting to "default". Must match the pair used on write.
Second half of the scope, defaulting to "default".
Read one user's memories. Exactly one of user_id / agent_id is required, and a user owner may only ask for "episode" or "profile".
1Read one agent's memories. Exactly one of user_id / agent_id is required, and an agent owner may only ask for "agent_case" or "agent_skill".
11-based page number.
x >= 1Items per page, 1 to 100 (default 20).
1 <= x <= 100Order by "timestamp" (when the memory happened, default) or "updated_at" (when it was last written). Profiles and agent skills have no temporal column and always sort by "updated_at".
timestamp, updated_at "desc" (default, newest first) or "asc".
asc, desc Attach a human-readable rendering to each returned episode, for display only. Ignored for every non-episode memory_type rather than rejected.
Optional filter tree applied to the listing; same shape as on search.
Show child attributes
Show child attributes
Was this page helpful?

